package com.qfedu.openplateform.manager.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * @author lileijian
 * @create 2021-12-02 19:49
 */
@Data
public class Res implements Serializable {
    private static final long serialVersionUID = 1L;

    //有私有化的静态变量
    private static Res res = new Res();
    //私有化构造方法
    private Res(){}

    private Object data;
    private Integer code;
    private String msg;
    private Long count;

    // 转态
    private boolean status;
    // 信息
    private String message;
    //  结果
    private Object result;

    /***
     * 成功返回
     * @return
     */
    public static Res ok(boolean status,String message) {
        res.setStatus(status);
        res.setMessage(message);
        res.setCode(CodeType.ok.getCode());
        res.setMsg("success");
        return res;
    }
    /***
     * 失败返回
     * @return
     */
    public static Res error(boolean status,String message) {
        res.setStatus(status);
        res.setMessage(message);
        res.setCode(CodeType.no.getCode());
        res.setMsg("error");
        return res;
    }



    /***
     * 成功返回
     * @return
     */
    public static Res ok() {
        res.setCode(CodeType.ok.getCode());
        res.setMsg("success");
        return res;
    }

    /***
     * 自定义成功返回
     * @return
     */
    public static Res ok(String msg) {
        res.setCode(CodeType.ok.getCode());
        res.setMsg(msg);
        return res;
    }

    /***
     *  成功返回 传入data
     * @param data
     * @return
     */
    public static Res ok(Object data){
        res.setData(data);
        res.setCode(CodeType.ok.getCode());
        res.setMsg("success");
        return res;
    }


    /***
     * 成功返回 传入data count
     * @param data
     * @param count
     * @return
     */
    public static Res ok(Object data,Long count){
        res.setData(data);
        res.setCount(count);
        res.setCode(CodeType.ok.getCode());
        res.setMsg("success");
        return res;
    }

    /**
     * 失败返回
     * @return
     */
    public static Res error(){
        res.setCode(CodeType.no.getCode());
        res.setMsg("error");
        return res;
    }

    /**
     * 自定义失败返回
     * @return
     */
    public static Res error(String msg){
        res.setCode(CodeType.no.getCode());
        res.setMsg(msg);
        return res;
    }

    //异常返回
    public static String exception() {
        return "未知异常，请联系管理员。";
    }



}
